#pragma once

#include "stdafx.h"

using namespace irr;
using namespace System;

namespace IrrlichtLime {

public enum class KeyCode
{
	MouseLButton = KEY_LBUTTON,
	MouseRButton = KEY_RBUTTON,
	Cancel = KEY_CANCEL,
	MouseMButton = KEY_MBUTTON,
	MouseXButton1 = KEY_XBUTTON1,
	MouseXButton2 = KEY_XBUTTON2,
	Backspace = KEY_BACK,
	Tab = KEY_TAB,
	Clear = KEY_CLEAR,
	Return = KEY_RETURN,
	Shift = KEY_SHIFT,
	Ctrl = KEY_CONTROL,
	Alt = KEY_MENU,
	Pause = KEY_PAUSE,
	CapsLock = KEY_CAPITAL,
	IME_Kana = KEY_KANA,
	IME_Hangul = KEY_HANGUL,
	IME_Junja = KEY_JUNJA,
	IME_Final = KEY_FINAL,
	IME_Hanja = KEY_HANJA,
	IME_Kanji = KEY_KANJI,
	Esc = KEY_ESCAPE,
	IME_Convert = KEY_CONVERT,
	IME_NonConvert = KEY_NONCONVERT,
	IME_Accept = KEY_ACCEPT,
	IME_ModeChange = KEY_MODECHANGE,
	Space = KEY_SPACE,
	PageUp = KEY_PRIOR,
	PageDown = KEY_NEXT,
	End = KEY_END,
	Home = KEY_HOME,
	Left = KEY_LEFT,
	Up = KEY_UP,
	Right = KEY_RIGHT,
	Down = KEY_DOWN,
	Select = KEY_SELECT,
	Print = KEY_PRINT,
	Execute = KEY_EXECUT,
	PrintScreen = KEY_SNAPSHOT,
	Insert = KEY_INSERT,
	Delete = KEY_DELETE,
	Help = KEY_HELP,
	Key0 = KEY_KEY_0,
	Key1 = KEY_KEY_1,
	Key2 = KEY_KEY_2,
	Key3 = KEY_KEY_3,
	Key4 = KEY_KEY_4,
	Key5 = KEY_KEY_5,
	Key6 = KEY_KEY_6,
	Key7 = KEY_KEY_7,
	Key8 = KEY_KEY_8,
	Key9 = KEY_KEY_9,
	KeyA = KEY_KEY_A,
	KeyB = KEY_KEY_B,
	KeyC = KEY_KEY_C,
	KeyD = KEY_KEY_D,
	KeyE = KEY_KEY_E,
	KeyF = KEY_KEY_F,
	KeyG = KEY_KEY_G,
	KeyH = KEY_KEY_H,
	KeyI = KEY_KEY_I,
	KeyJ = KEY_KEY_J,
	KeyK = KEY_KEY_K,
	KeyL = KEY_KEY_L,
	KeyM = KEY_KEY_M,
	KeyN = KEY_KEY_N,
	KeyO = KEY_KEY_O,
	KeyP = KEY_KEY_P,
	KeyQ = KEY_KEY_Q,
	KeyR = KEY_KEY_R,
	KeyS = KEY_KEY_S,
	KeyT = KEY_KEY_T,
	KeyU = KEY_KEY_U,
	KeyV = KEY_KEY_V,
	KeyW = KEY_KEY_W,
	KeyX = KEY_KEY_X,
	KeyY = KEY_KEY_Y,
	KeyZ = KEY_KEY_Z,
	LWin = KEY_LWIN,
	RWin = KEY_RWIN,
	Apps = KEY_APPS,
	Sleep = KEY_SLEEP,
	Num0 = KEY_NUMPAD0,
	Num1 = KEY_NUMPAD1,
	Num2 = KEY_NUMPAD2,
	Num3 = KEY_NUMPAD3,
	Num4 = KEY_NUMPAD4,
	Num5 = KEY_NUMPAD5,
	Num6 = KEY_NUMPAD6,
	Num7 = KEY_NUMPAD7,
	Num8 = KEY_NUMPAD8,
	Num9 = KEY_NUMPAD9,
	Multiply = KEY_MULTIPLY,
	Add = KEY_ADD,
	Separator = KEY_SEPARATOR,
	Subtract = KEY_SUBTRACT,
	Decimal = KEY_DECIMAL,
	Devide = KEY_DIVIDE,
	F1 = KEY_F1,
	F2 = KEY_F2,
	F3 = KEY_F3,
	F4 = KEY_F4,
	F5 = KEY_F5,
	F6 = KEY_F6,
	F7 = KEY_F7,
	F8 = KEY_F8,
	F9 = KEY_F9,
	F10 = KEY_F10,
	F11 = KEY_F11,
	F12 = KEY_F12,
	F13 = KEY_F13,
	F14 = KEY_F14,
	F15 = KEY_F15,
	F16 = KEY_F16,
	F17 = KEY_F17,
	F18 = KEY_F18,
	F19 = KEY_F19,
	F20 = KEY_F20,
	F21 = KEY_F21,
	F22 = KEY_F22,
	F23 = KEY_F23,
	F24 = KEY_F24,
	NumLock = KEY_NUMLOCK,
	ScrollLock = KEY_SCROLL,
	LShift = KEY_LSHIFT,
	RShift = KEY_RSHIFT,
	LControl = KEY_LCONTROL,
	RControl = KEY_RCONTROL,
	LMenu = KEY_LMENU,
	RMenu = KEY_RMENU,
	OEM_1 = KEY_OEM_1,
	Plus = KEY_PLUS,
	Comma = KEY_COMMA,
	Minus = KEY_MINUS,
	Period = KEY_PERIOD,
	OEM_2 = KEY_OEM_2,
	OEM_3 = KEY_OEM_3,
	OEM_4 = KEY_OEM_4,
	OEM_5 = KEY_OEM_5,
	OEM_6 = KEY_OEM_6,
	OEM_7 = KEY_OEM_7,
	OEM_8 = KEY_OEM_8,
	OEM_AX = KEY_OEM_AX,
	OEM_102 = KEY_OEM_102,
	Backquote = 0xC0, // Native KeyCode.h has no "`" key defined
	Attn = KEY_ATTN,
	CrSel = KEY_CRSEL,
	ExSel = KEY_EXSEL,
	ErEOF = KEY_EREOF,
	Play = KEY_PLAY,
	Zoom = KEY_ZOOM,
	PA1 = KEY_PA1,
	OEM_Clear = KEY_OEM_CLEAR
};

} // end namespace IrrlichtLime